<html>
<head><meta charset="utf-8"><title>what to call regions · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html">what to call regions</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="167475923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167475923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167475923">(Jun 06 2019 at 12:17)</a>:</h4>
<p>By the way, one question with Polonius has long been what to call regions. In discussions with <span class="user-mention" data-user-id="127262">@Aaron Weiss</span> we settled on a few possible names. These all come from the intuition that a region in Polonius is equivalent to a <em>set of loans</em> -- i.e., it describes the possible places that the reference could have originated. That suggests various names like:</p>
<ul>
<li>Provenance -- often used to describe the source of a pointer in "the literature"</li>
<li>Origin</li>
<li>Source</li>
</ul>
<p>This all connects nicely to the form of explanation that says <code>fn foo&lt;'a&gt;(data: &amp;'a T) -&gt; &amp;'a U</code> means that the return value is "borrowed from <code>data</code>".</p>



<a name="167476000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167476000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167476000">(Jun 06 2019 at 12:18)</a>:</h4>
<p>I'm torn in that <em>provenance</em> feels like the "standard" term but also one that is kind of hard to spell and long :) I sort of like <em>origin</em> or <em>source</em> but I'm not sure how to choose between them.</p>



<a name="167476971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167476971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167476971">(Jun 06 2019 at 12:32)</a>:</h4>
<p>I'm also torn, being used to regions and provenance</p>



<a name="167477250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167477250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167477250">(Jun 06 2019 at 12:37)</a>:</h4>
<p>it's sometimes nice to have a "semi-unusual" term</p>



<a name="167477961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167477961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167477961">(Jun 06 2019 at 12:47)</a>:</h4>
<p><em>provegion</em></p>



<a name="167477992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167477992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167477992">(Jun 06 2019 at 12:47)</a>:</h4>
<p>I'm trying out RefProv in my thesis</p>



<a name="167478102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167478102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167478102">(Jun 06 2019 at 12:49)</a>:</h4>
<p>The ligatures get really weird in Baskerville</p>



<a name="167493246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167493246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167493246">(Jun 06 2019 at 15:39)</a>:</h4>
<p>Already mentioned to Niko, but I had a similar discussion about provenance and origin with my advisor (<a href="http://www.ccis.northeastern.edu/home/amal/" target="_blank" title="http://www.ccis.northeastern.edu/home/amal/">Amal Ahmed</a>) who was insistent at least for Oxide that we should use <em>provenance</em> because it feels more "precise."</p>



<a name="167507887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167507887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167507887">(Jun 06 2019 at 18:24)</a>:</h4>
<p>I kind of like it too, it reminds me of archives in a good way</p>



<a name="167510342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167510342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167510342">(Jun 06 2019 at 18:49)</a>:</h4>
<p>Hm, actually, if we truly desire a short name, what about just calling them <em>provs</em>? That's what I've been using in my OCaml implementation of Oxide.</p>



<a name="167528247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/167528247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#167528247">(Jun 06 2019 at 22:18)</a>:</h4>
<p>I think <code>prov</code> is ok for code or something -- though i'd probably lean towards <code>provenance</code> -- but for speaking out loud... not so much :)</p>



<a name="169558217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/what%20to%20call%20regions/near/169558217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/what.20to.20call.20regions.html#169558217">(Jul 03 2019 at 11:32)</a>:</h4>
<p>there's also <code>trace</code> which sounded interesting (I think Frank uses it in timely/DD if I remember correctly)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>